/**
 * 数字生成字母
 */
export function getLetter(num: number) {
  return String.fromCharCode(num + 65);
}

/**
 * 保留一位小数，不四舍五入
 */
export function oneDecimal(number: number) {
  return Math.floor(number * 10) / 10;
}

/**
 * 处理ltgt
 */
export function strReplace(str: string) {
  if (!str) return;
  const s = str.replace(/&lt;/g, "<");
  return s.replace(/&gt;/g, ">");
}
/**
 * 将< > 换成&lt &gt
 */

export function formatHtml(str: string) {
  return str.replaceAll(/</g, "&lt;").replaceAll(/>/g, "&gt;");
}

/**
 * 下载文件blob
 */
export function downloadFile(blob: Blob, name: string) {
  // 创建一个下载链接并将文件内容附加到链接上
  const url = window.URL.createObjectURL(blob);
  // 创建一个隐藏的 <a> 标签用于下载
  const a = document.createElement("a");
  a.style.display = "none";
  a.href = url;
  a.download = name; // 设置下载文件的名称
  document.body.appendChild(a);

  // 触发点击事件以开始下载
  a.click();

  // 清理资源
  window.URL.revokeObjectURL(url);
}
/**
 * 阿拉伯数字转换为大写
 * @param number
 * @returns
 */
export function numberToChinese(number: number) {
  const chineseNumbers = [
    "零",
    "一",
    "二",
    "三",
    "四",
    "五",
    "六",
    "七",
    "八",
    "九"
  ];
  const chineseUnits = ["", "十", "百", "千", "万"];

  const numberStr = String(number);
  const len = numberStr.length;

  let chineseStr = "";
  let zeroFlag = false; // 是否连续多个零

  for (let i = 0; i < len; i++) {
    const num = parseInt(numberStr[i]);
    const unit = len - i - 1;

    if (num === 0) {
      zeroFlag = true;
    } else {
      if (zeroFlag) {
        chineseStr += chineseNumbers[0]; // 遇到连续的零，先添加一个零
        zeroFlag = false;
      }
      chineseStr += chineseNumbers[num] + chineseUnits[unit];
    }
  }

  // 处理十的特殊情况
  chineseStr = chineseStr.replace("一十", "十");

  return chineseStr;
}
/**
 * 去除空格
 */
export function removeSpaces(inputString: string) {
  // 使用正则表达式替换所有空格
  return inputString.replace(/\s+/g, "");
}
/**
 * 富文本是否为空
 */
export function hasEmpty(str: string) {
  const replaceStr = strReplace(str)
    .replace(/<[^<p>]+>/g, "") // 将所有<p>标签 replace ''
    .replace(/<[</p>$]+>/g, "") // 将所有</p>标签 replace ''
    .replace(/&nbsp;/gi, "") // 将所有 空格 replace ''
    .replace(/<[^<br/>]+>/g, ""); // 将所有 换行符 replace ''
  if (replaceStr == "") return true;
  const regu = "^[ ]+$";
  const re = new RegExp(regu);
  return re.test(replaceStr);
}
